perm filename TEST4.SAI[GEO,BGB] blob
sn#082513 filedate 1974-01-18 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00006 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 BEGIN "TEST4"
C00003 00003
C00004 00004 SIMPLE PROCEDURE DPYF (INTEGER F)
C00005 00005 SCALE ← 1000
C00006 00006 OUTSTR(" ZCUT = ")
C00008 ENDMK
C⊗;
BEGIN "TEST4"
REQUIRE "ABBREV[SYS,BGB]" SOURCE_FILE;
REQUIRE "GEOMES.HDR" SOURCE_FILE;
REQUIRE "SLICE" LOAD_MODULE;
INTEGER B1,B2,F0,F,E0,E,V,CHR;
REAL ZCUT;
STRING STR;
EXTERNAL ITG SUBR SLICE (INTEGER B;REAL Z);
EXTERNAL ITG ARRAY DPYBUF[0:1];
REAL XMAX,YMAX,ZMAX;
REAL XMIN,YMIN,ZMIN;
REAL SCALE;
ITG SUBR BOUNDS (ITG B);
BEGIN "BOUNDS"
ITG V;
α VERTEX SCAN FOR MINAMAX LOCI;
XMAX ← YMAX ← ZMAX ← -1000;
XMIN ← YMIN ← ZMIN ← +1000;
V ← PVT(B);
DO BEGIN
IF XWC(V) > XMAX THEN XMAX ← XWC(V);
IF YWC(V) > YMAX THEN YMAX ← YWC(V);
IF ZWC(V) > ZMAX THEN ZMAX ← ZWC(V);
IF XWC(V) < XMIN THEN XMIN ← XWC(V);
IF YWC(V) < YMIN THEN YMIN ← YWC(V);
IF ZWC(V) < ZMIN THEN ZMIN ← ZWC(V);
END UNTIL B=(V←PVT(V));
END "BOUNDS";
SIMPLE PROCEDURE DPYF (INTEGER F);
BEGIN "DPYF"
INTEGER E,E0,V,I;
E ← E0 ← PED(F); I←0;
V ← VCW(E0,F);AIVECT(SCALE*XWC(V),SCALE*YWC(V));
DO BEGIN V ← VCCW(E,F); I←I+1;
AVECT(SCALE*XWC(V),SCALE*YWC(V));
END UNTIL E0 = (E←ECCW(E,F));
DPYSST(CVS(I));
END "DPYF";
SCALE ← 1000;
GEONIT;
B1 ← IGEM("HIP.GEM[GEM,BGB]");
ICAM("TMP.CAM[GEM,BGB]");
BOUNDS(B1);
B2 ← MKCUBE(XMAX-XMIN,YMAX-YMIN,ZMAX-ZMIN);
TRANSLATE(B2,(XMAX+XMIN)/2,(YMAX+YMIN)/2,(ZMAX+ZMIN)/2);
F ← SLICE(B1,0.2);
TRANSLATE(BGET(F),0,0,1/6);
GEODPY;INCHRW;
TRANSLATE(BGET(F),0,0,1/6);
GEODPY;INCHRW;
TRANSLATE(BGET(F),0,0,1/6);
GEODPY;INCHRW;
TRANSLATE(BGET(F),0,0,1/6);
GEODPY;INCHRW;
OUTSTR(" ZCUT = ");
STR ← INCHWL;
ZCUT ← REALSCAN(STR,CHR)/12;
F0 ← F ← SLICE(B1,ZCUT);
DPYSET(DPYBUF);
AIVECT(SCALE*XMIN,SCALE*YMIN);
AVECT(SCALE*XMAX,SCALE*YMIN);
AVECT(SCALE*XMAX,SCALE*YMAX);
AVECT(SCALE*XMIN,SCALE*YMAX);
AVECT(SCALE*XMIN,SCALE*YMIN);
IF F THEN
DO DPYF(F) UNTIL F0 = (F←CDR8(F));
DPYOUT(1);
WHILE TRUE DO INCHWL;
END "TEST4"; BGB 11 JANUARY 1974.